Check window state for GDK_WINDOW_STATE_ICONIFIED before doing ShowWindow
authorCody Russell <bratsche@gnome.org>
Sun, 23 Mar 2008 15:37:40 +0000 (15:37 +0000)
committerCody Russell <bratsche@src.gnome.org>
Sun, 23 Mar 2008 15:37:40 +0000 (15:37 +0000)
2008-03-23  Cody Russell  <bratsche@gnome.org>

        * gdk/win32/gdkevents-win32.c (show_window_recurse):
        Check window state for GDK_WINDOW_STATE_ICONIFIED before doing
        ShowWindow (SW_RESTORE).  This fixes a problem where tearing off
        menus from a maximized window would force the window to restore
        its size. (#518846)

svn path=/trunk/; revision=19926

ChangeLog
gdk/win32/gdkevents-win32.c

index d30f1fe025242cf1b4a981efb6c3fb352d120a72..705ce561ae4b2c41692ba26059cc9bc3a6d26788 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-03-23  Cody Russell  <bratsche@gnome.org>
+
+       * gdk/win32/gdkevents-win32.c (show_window_recurse):
+       Check window state for GDK_WINDOW_STATE_ICONIFIED before doing
+       ShowWindow (SW_RESTORE).  This fixes a problem where tearing off
+       menus from a maximized window would force the window to restore
+       its size. (#518846)
+
 2008-03-23  Johan Dahlin  <johan@gnome.org>
 
        * gtk/gtk-builder-convert:
index 7841171620de142f5789019166fe3cec51e60918..3f4fdd554755b62e1af0e072dcbf6b0f2eb07ac0 100644 (file)
@@ -1297,9 +1297,16 @@ show_window_recurse (GdkWindow *window, gboolean hide_window)
       if (GDK_WINDOW_IS_MAPPED (window))
        {
          if (!hide_window)
-           ShowWindow (GDK_WINDOW_HWND (window), SW_RESTORE);
+           {
+             if (GDK_WINDOW_OBJECT (window)->state & GDK_WINDOW_STATE_ICONIFIED)
+               {
+                 ShowWindow (GDK_WINDOW_HWND (window), SW_RESTORE);
+               }
+           }
          else
-           ShowWindow (GDK_WINDOW_HWND (window), SW_MINIMIZE);
+           {
+             ShowWindow (GDK_WINDOW_HWND (window), SW_MINIMIZE);
+           }
        }
 
       impl->changing_state = FALSE;